package leetcode100;

// TODO 贪心算法 [经典] 【-】 跳跃游戏
// TODO

public class lc100_0055 {

    public boolean canJump(int[] nums) {
        int n = nums.length;
        if (n == 1)
            return true;
        // 纪录最远能到达的位置
        int maxTep = 0;

        for (int i=0; i<n; i++) {
            // 如果 nums[i] == 0 并且 maxTemp 不大于 i 的话, 说明达到不了后面了
            if (maxTep <= i  && nums[i] == 0)
                return false;
            nums[i] = nums[i] + i;
            maxTep = Math.max(maxTep, nums[i]);
            // maxTep >= n-1, 说明已经能跳到最后了
            if (maxTep >= n-1) {
                return true;
            }
        }

        return true;
    }

}
